-
Notifications
You must be signed in to change notification settings - Fork 7.3k
[DRAFT] virtio: add virtiofs #86768
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
[DRAFT] virtio: add virtiofs #86768
Conversation
ba271da
to
d24c129
Compare
Looks very good so far. Is it possible to separate the virtiofs and fuse contributions into separate commits? I think they can be used independently - e.g. network based FUSE. I was initially searching for the separation between host and device roles under Maybe slightly different naming would make it easier to differentiate which is the host driver and which is the device between e.g. with virtiofs.c and virtiofs_zvfs.c, maybe virtiofs_host.c and virtiofs_device.c. Naming things is hard though, so it's maybe good to discuss. Additionally, different subsystems have different naming conventions for things, but it would be nice to have some cross-subsystem naming. Given that it might be hard to identify all of the different virtio drivers that will eventually be scattered throughout Zephyr, and which might do the host side vs device side, I would also like to see a new section in the documentation.
Happy to help move this along any way I can. |
d24c129
to
05ddf1c
Compare
This commit adds the API for accessing VIRTIO devices, and adds a driver for a VIRTIO PCIE device based on the newly added API. This commit is based on the Virtual I/O Device (VIRTIO) Version 1.3 specification: https://docs.oasis-open.org/virtio/virtio/v1.3/csd01/virtio-v1.3-csd01.pdf Signed-off-by: Jakub Michalski <[email protected]> Signed-off-by: Filip Kokosinski <[email protected]>
This commit adds virtio section in documentation, describing virtio-related concepts Signed-off-by: Jakub Michalski <[email protected]> Signed-off-by: Filip Kokosinski <[email protected]>
This commit adds a build test for the VIRTIO PCI device. Signed-off-by: Jakub Michalski <[email protected]> Signed-off-by: Filip Kokosinski <[email protected]>
This commit adds virtio section in documentation, describing virtio-related concepts Signed-off-by: Jakub Michalski <[email protected]>
This commit adds fuse structures, requests and functions to fill them Signed-off-by: Jakub Michalski <[email protected]>
This commit adds virtiofs functions implementing fuse operations required to enable zephyr filesystem support Signed-off-by: Jakub Michalski <[email protected]>
This commit implements zephyr filesystem operations for virtiofs Signed-off-by: Jakub Michalski <[email protected]> Signed-off-by: Filip Kokosinski <[email protected]>
This commit adds virtiofs sample that presents use of this filesystem Signed-off-by: Jakub Michalski <[email protected]> Signed-off-by: Filip Kokosinski <[email protected]>
This commit adds sections to the virtio docs with the currently supported transfer methods, drivers and samples Signed-off-by: Jakub Michalski <[email protected]>
05ddf1c
to
59c7537
Compare
Hey @cfriedt, thanks for your comment! I believe all of your remarks have been addressed in the recent push (here and in the VIRTIO PCI API PR). |
This PR:
Note that this draft PR uses the VIRTIO PCI driver implemented in #83892, and is meant to showcase how the VIRTIO PCI driver can be used with Zephyr.